Move destroyed check to common code for get_origin & get_root_coords
authorAlexander Larsson <alexl@redhat.com>
Tue, 30 Jun 2009 07:30:53 +0000 (09:30 +0200)
committerAlexander Larsson <alexl@redhat.com>
Tue, 30 Jun 2009 07:30:53 +0000 (09:30 +0200)
Also remove weird return value from get_root_coords

gdk/gdkwindow.c
gdk/gdkwindow.h
gdk/x11/gdkwindow-x11.c

index 56b8974a02ac71baf6810d324030becddbbd13ee..f635a0722cd5dcfebd5d032ccca7510958fd41e4 100644 (file)
@@ -6990,6 +6990,15 @@ gdk_window_get_origin (GdkWindow *window,
 
   g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
 
+  if (GDK_WINDOW_DESTROYED (window))
+    {
+      if (x)
+       *x = 0;
+      if (y)
+       *y = 0;
+      return 0;
+    }
+  
   private = (GdkWindowObject *) window;
 
   GDK_WINDOW_IMPL_GET_IFACE (private->impl)->get_root_coords (window,
@@ -7012,10 +7021,8 @@ gdk_window_get_origin (GdkWindow *window,
  * window coordinates. This is similar to
  * gdk_window_get_origin() but allows you go pass
  * in any position in the window, not just the origin.
- *
- * Return value: not meaningful, ignore
  */
-gint
+void
 gdk_window_get_root_coords (GdkWindow *window,
                            gint       x,
                            gint       y,
@@ -7028,6 +7035,15 @@ gdk_window_get_root_coords (GdkWindow *window,
 
   private = (GdkWindowObject *) window;
 
+  if (GDK_WINDOW_DESTROYED (window))
+    {
+      if (x)
+       *root_x = x;
+      if (y)
+       *root_y = y;
+      return;
+    }
+  
   GDK_WINDOW_IMPL_GET_IFACE (private->impl)->get_root_coords (window,
                                                              x + private->abs_x,
                                                              y + private->abs_y,
index 752f6b66cb26a5c651fbc23b454473566b9cdaab..df3c911809b472bcd2d408996ecd1915aa8b7b63 100644 (file)
@@ -531,7 +531,7 @@ void              gdk_window_get_position    (GdkWindow       *window,
 gint         gdk_window_get_origin      (GdkWindow       *window,
                                          gint            *x,
                                          gint            *y);
-gint         gdk_window_get_root_coords (GdkWindow       *window,
+void         gdk_window_get_root_coords (GdkWindow       *window,
                                          gint             x,
                                          gint             y,
                                          gint            *root_x,
index 1c7c669e70a33f0e5127dcb86cfb9798b5b61f44..9cd453b1ee27a7264f35a6ff062cd88730651410 100644 (file)
@@ -2788,19 +2788,14 @@ gdk_window_x11_get_root_coords (GdkWindow *window,
 {
   gint return_val;
   Window child;
-  gint tx = 0;
-  gint ty = 0;
+  gint tx;
+  gint ty;
   
-  if (!GDK_WINDOW_DESTROYED (window))
-    {
-      return_val = XTranslateCoordinates (GDK_WINDOW_XDISPLAY (window),
-                                         GDK_WINDOW_XID (window),
-                                         GDK_WINDOW_XROOTWIN (window),
-                                         x, y, &tx, &ty,
-                                         &child);
-    }
-  else
-    return_val = 0;
+  return_val = XTranslateCoordinates (GDK_WINDOW_XDISPLAY (window),
+                                     GDK_WINDOW_XID (window),
+                                     GDK_WINDOW_XROOTWIN (window),
+                                     x, y, &tx, &ty,
+                                     &child);
   
   if (root_x)
     *root_x = tx;